2023/12/231609字符
变量
- 变量必须先定义再使用;
- 不可重复定义;
- 变量定义类型与赋值类型必须一致;
- 变量声明后不使用会报错,但常量不会;
变量声明
package main // 包名,保证唯一
import "fmt" // 导入包
func main() { // 主函数
// 约定类型
var num int = 20
fmt.Println(num) //--> 20
// 类型推断
var name = "bozai"
fmt.Printf("type: %T,value: %s\n", name, name) //-> type: string,value: bozai
// 简写(只能在函数中使用,左边至少有一个变量名未定义过)
age := 120
fmt.Println(age) //--> 120
// 声明多个
var a1, a2, a3 = true, "20", 30.12
fmt.Printf("types: %T, %T, %T\n", a1, a2, a3) //--> types: bool, string, float64
var (
userName = "bozai"
userAge = 18
userSex = "boy"
)
fmt.Printf("name: %s, age: %d, sex: %s\n", userName, userAge, userSex) //--> name: bozai, age: 18, sex: boy
}
常量声明
package main
import "fmt"
func main() {
// 常量
const PATH = "http://hpyyb.cn/"
// 一组常量中,没有赋值会取上一个常量的默认值,但第一个常量不能不赋值
const (
A = 1
B
C = "h"
D
E
)
fmt.Println(A, B, C, D, E) //--> 1 1 h h h
// 枚举类型常量定义
const (
SPRING = 1
SUMMER = 2
AUTUMN = 3
WINTER = 4
)
// iota 类型可以被自动修改,直到遇到下一个 const 清零。相当于一个函数累加器
const (
NUM1 = iota
NUM2
NUM3 = "xxx" // 这里会使用一次 iota
NUM4 = iota
)
fmt.Println(NUM1, NUM2, NUM3, NUM4) //--> 0 1 xxx 3
}